package com.smedi.ismedi.inmail.core.port.adapter.service;

import com.smedi.ismedi.inmail.core.domain.aggregatemodel.Node;
import com.smedi.ismedi.inmail.core.domain.aggregatemodel.Person;
import com.smedi.ismedi.inmail.core.domain.dto.OrganizationAssignmentQuery;
import com.smedi.ismedi.inmail.core.domain.dto.PersonQuery;
import com.smedi.ismedi.personnel.api.dto.response.PersonResponse;
import com.smedi.ismedi.personnel.api.dto.response.resp.OrganizationAssignmentResp;
import com.smedi.ismedi.personnel.api.dto.response.resp.PersonResp;

import java.util.List;

public interface PersonRemoteApi {
    List<PersonResponse> getPersonInProjectWithRoleIds(Long projectId, List<Long> roleIds);

    List<PersonResponse> getPersonInOrganizationWithRoleIds(Long organizationId, List<Long> roleIds);

    List<PersonResponse> getPersonOne();

    List<PersonResp> getPersonList(PersonQuery personQuery);

    List<OrganizationAssignmentResp> getOrganizationAssignmentList(OrganizationAssignmentQuery organizationAssignmentQuery);

    Node getOrganizationTree();

    Node getProjectTree();
}